package com.ruoyi.project.system.job.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 作业-课程-班级记录对象 job_course_class
 *
 * @author ruoyi
 * @date 2021-04-15
 */
public class JobCourseClass extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 课程ID */
    @Excel(name = "课程ID")
    private Long courseId;

    /** 班级id数组，使用,隔开 为空代表所有 */
    @Excel(name = "班级id数组，使用,隔开 为空代表所有")
    private String classIds;

    /** 作业标题/题目 */
    @Excel(name = "作业标题/题目")
    private String title;

    /** 章节/知识点描述 */
    @Excel(name = "章节/知识点描述")
    private String knowledgeDescription;

    /** 作业类型： 1.选择题 2.填空题 3.简答题 4.文档上传题 */
    @Excel(name = "作业类型： 1.选择题 2.填空题 3.简答题 4.文档上传题")
    private String type;

    /** 作业描述 */
    @Excel(name = "作业描述")
    private String description;

    /** 作业要求 */
    @Excel(name = "作业要求")
    private String requirement;

    /** 作业分值 */
    @Excel(name = "作业分值")
    private BigDecimal score;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 截至时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截至时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 补交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "补交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date makeUpTime;

    /** 补交扣分 */
    @Excel(name = "补交扣分")
    private BigDecimal deductScore;

    private String optionJson;

    private String answer;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCourseId(Long courseId)
    {
        this.courseId = courseId;
    }

    public Long getCourseId()
    {
        return courseId;
    }
    public void setClassIds(String classIds)
    {
        this.classIds = classIds;
    }

    public String getClassIds()
    {
        return classIds;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setKnowledgeDescription(String knowledgeDescription)
    {
        this.knowledgeDescription = knowledgeDescription;
    }

    public String getKnowledgeDescription()
    {
        return knowledgeDescription;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setRequirement(String requirement)
    {
        this.requirement = requirement;
    }

    public String getRequirement()
    {
        return requirement;
    }
    public void setScore(BigDecimal score)
    {
        this.score = score;
    }

    public BigDecimal getScore()
    {
        return score;
    }
    public void setBeginTime(Date beginTime)
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime()
    {
        return beginTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setMakeUpTime(Date makeUpTime)
    {
        this.makeUpTime = makeUpTime;
    }

    public Date getMakeUpTime()
    {
        return makeUpTime;
    }
    public void setDeductScore(BigDecimal deductScore)
    {
        this.deductScore = deductScore;
    }

    public BigDecimal getDeductScore()
    {
        return deductScore;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("courseId", getCourseId())
            .append("classIds", getClassIds())
            .append("title", getTitle())
            .append("knowledgeDescription", getKnowledgeDescription())
            .append("type", getType())
            .append("description", getDescription())
            .append("requirement", getRequirement())
            .append("score", getScore())
            .append("beginTime", getBeginTime())
            .append("endTime", getEndTime())
            .append("makeUpTime", getMakeUpTime())
            .append("deductScore", getDeductScore())
            .toString();
    }

    public String getOptionJson() {
        return optionJson;
    }

    public void setOptionJson(String optionJson) {
        this.optionJson = optionJson;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }
}
